package com.smart.manager.product.entities.body;

import com.smart.common.entities.core.BaseSearch;
import com.smart.manager.product.entities.enums.ProfileStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;


/**
 * 游戏管理  套餐管理
 * @author leo
 * @date 2023/09/05
 */
public class RPropsCombo {

    @Data
    @EqualsAndHashCode(callSuper = true)
    @ApiModel("RBasicPigsty1")
    public static class SearchBody extends BaseSearch {

        @ApiModelProperty("套餐代码")
        private String code;

        @ApiModelProperty("套餐名称")
        private String name;

        @ApiModelProperty("上架状态")
        private ProfileStatus status;

    }


    @Data
    @ApiModel("RBasicPigsty2")
    public static class EditBody  implements Serializable {

        @ApiModelProperty("套餐代码")
        @NotBlank(message = "套餐代码 不能为空")
        private String code;

        @ApiModelProperty("套餐名称")
        @NotBlank(message = "套餐名称 不能为空")
        private String name;

        @ApiModelProperty("售价金币")
        @Min(value = 1,message = "售价金币 不能小于1")
        @NotNull(message = "售价金币 不能为空")
        private Integer price;

        @ApiModelProperty("食物档案code")
        @NotNull(message = "食物档案 不能为空")
        private List<String> meat;


        @ApiModelProperty("是否是套餐包")
        private Boolean isPack;

        @ApiModelProperty("折扣")
        private BigDecimal discountPrice;

        @ApiModelProperty("最低食用等级")
        @Min(value = 0,message = "最低食用等级 不能小于0")
        @NotNull(message = "最低食用等级 不能为空")
        private Integer minLevel;

        @ApiModelProperty("最高食用等级")
        @Min(value = 1,message = "最高食用等级 不能小于1")
        @NotNull(message = "最高食用等级 不能为空")
        private Integer maxLevel;

        @ApiModelProperty("套餐库存")
        @Min(value = 0,message = "套餐库存 不能小于1")
        @NotNull(message = "套餐库存 不能为空")
        private Integer stock;



        @ApiModelProperty("套餐状态")
        @NotNull(message = "套餐状态 不能为空")
        private ProfileStatus status;

        @ApiModelProperty("显示排序")
        @NotNull(message = "显示排序 不能为空")
        @Min(value = 0,message = "显示排序 不能小于0")
        @Max(value = 999,message = "显示排序 不能大于999")
        private Integer sort;


        @ApiModelProperty("有机属性")
        @NotNull(message = "有机属性 不能为空")
        private Boolean isOrganic;
    }


}
